第1章 クリーンアーキテクチャ
なぜ「きれいな設計」を求めるのか、「きれい」とは何なのか(1章 扉より)をつかむ章
独自のソフトウェアを開発しなければならない(1-1)
ユーザの問題を解決するため
ユーザー固有の問題はソフトウェア開発の本質です。(Kindle の位置No.334-335)
独自のアーキテクチャを設計
クリーンアーキテクチャが一つの指針となる
独自ソフトウェアのアーキテクチャを設計するためのフレームワーク (p.40)
アーキテクチャは動作に貢献しない(1-2)
開発者の生産性に貢献(1-3にも関連)
「凝集度」「依存」「安定度」 (p.51 1-6)
凝集度(1-4)
関係の強いもの同士だけが集まっている (p.46)
「高凝集」
依存関係(1-5)
使うために参照する側(A)と参照される側(B)
参照される側(B)は独立して存在(つねに成立)
参照する側(A)は参照される側(B)がないと成立しない
疎結合にしたい
依存によっても結合する
安定度(1-5)
コードの変わりにくさ
人間にとって本質か非本質かで安定度を予測できる
(ユーザの問題=本質 1-1)
きれいな設計(1-6 p.52)
1.ひとつの関心がひとつの箇所に閉じている
2.利用する/されるの関係箇所を可能なかぎり減らす
3.できるだけ変更頻度の高い事情に依存しない
クリーンアーキテクチャの新規性は3に注目したこと
ある変更が別の余計な変更を招く=クリーンでない(=汚い)
1-6でクリーンアーキテクチャの4つの円を説明!
不安定が安定に一方的に依存する (p.54)
本当に訴えたいことの核心は、プログラミングテクニックを使った、この依存方向の自由な制御 (p.59)
続く章でオブジェクト指向を学んでから
クリーンアーキテクチャはアーキテクチャのパターンにすぎない(1-7)
具体的にこれがそうだと言える決まったかたちがある方法論ではありません。(p.60)
あくまで層の分け方のアイデア。4つくらいに分けられそう
不安定な非本質から安定な本質に依存する概念構造はほかにもある(例を挙げている)
「共通コンセプト」「ガイドライン」